Skip to content

Intika-Linux-Proxy/Proxybound

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProxyBound v5.60

ProxyBound force any unix application to use a specific proxy and prevent it from leaking the original ip; Technically, ProxyBound is a UNIX program, that hooks network-related libc functions in dynamically linked programs via a preloaded DLL and redirects the connections through SOCKS4A/5 or HTTP proxies. This project is based on proxychain by netcreature, proxychains-ng by rofl0r, proxychains by haad and torsocks by dgoulet

Features:

  • Proxify applications (like mainstream proxychains)
  • Works with tcp (like mainstream proxychains)
  • No leaks over udp/icmp/etc... (INET & INET6)
  • Unsupported protocols are blocked
  • Support chrome/chromium/skype/similar
  • Incompatible applications are terminated with a proper message
  • Many additional settings over environment variable
  • etc.

Used environment variable:

- PROXYBOUND_CONF_FILE:         Path to config file (default ./proxybound.conf then /etc/proxybound.conf)
- PROXYBOUND_QUIET_MODE:        Quiet mode (1 or 0, default 0)
- PROXYBOUND_SOCKS5_HOST:       Specify unique socks 5 proxy to use (default not used)
- PROXYBOUND_SOCKS5_PORT:       Socks 5 port (default not used)
- PROXYBOUND_FORCE_DNS:         Force dns resolv requests through (1 or 0, default 1)
- PROXYBOUND_ALLOW_DNS:         Allow direct dns, allow udp port 53 and 853 (1 or 0, default 0)
- PROXYBOUND_ALLOW_LEAKS:       Allow/Block unproxyfied protocols "UDP/ICMP/ETC", blocked by default (1 or 0, default 0)
- PROXYBOUND_WORKING_INDICATOR: Create '/tmp/proxybound.tmp' when dll is working as intended (1 or 0, default 0)

How it works:

Proxybound hook libc functions like connect(), dynamic loader facilities are used, namely dl_sym() and LD_PRELOAD thus dynamically linked programs are required.

Install:

  ./configure
  make
  [optional] sudo make install

If you dont install, you can use proxybound from the build directory like this: ./proxybound -f src/proxybound.conf telnet google.com 80

Install debug version :

  ./configure
  make debug
  [optional] sudo make install

Changelog:

Version 5.60:

  • Fix skype compatibility
  • Improve no leak feature
  • Improve debug version
  • Improve output/log messages
  • Rewrite main hooked functions connect
  • Rewrite main hooked functions bind
  • Rewrite main hooked functions sendmsg
  • Rewrite main hooked functions sendto
  • Rewrite main hooked functions send

Version 5.50:

  • Block non tcp packet on send()
  • Prevent bypass noleak
  • Add support for bind() to block listen on unsupported protocol
  • Add skype support

Version 5.40:

  • Add "--help" and "-h" parameter
  • Add "--version" and "-v" parameter
  • Update help page

Version 5.30:

  • Code cleaning
  • Move readme to md
  • Add support for hosts file (upstream import)

Version 5.20:

  • add PROXYBOUND_ALLOW_DNS
  • update lock feature (send sendto sendmsg)
  • add function to terminate when app is not supported
  • add PROXYBOUND_WORKING_INDICATOR
  • Code cleaning
  • Update readme

Version 5.10:

  • leak lock feature (send sendto sendmsg)

Version 5.00:

  • Initial leak lock feature
  • Code cleaning
  • Update readme

Version 4.90:

  • Import simple SOCKS5 proxy mode from @haad/proxychains
  • Code cleaning
  • Update readme

Version 4.80:

  • Updates with some features from @haad/proxychains

Version 4.70:

  • Fix chrome compatibility

Version 4.60:

  • Code cleanning & update

Version 4.50:

  • Changing the name to ProxyBound

Version 4.40:

  • Import security issue fix CVE-2015-3887
  • Used v4.3 (4.03) for initial fork

Limits :

  • IPv6 is blocked and not supported (currently partially supported)
  • Some applications are incompatible (they will be explicitly terminated 2 sec after startup, to avoid leaks)

Configuration:

Proxybound config file in following order:

1)	File listed in environment variable ${PROXYBOUND_CONF_FILE} or
    provided as a -f argument to proxybound script or binary.
2)	./proxybound.conf
3)	$(HOME)/.proxybound/proxybound.conf
4)	/etc/proxybound.conf

Usage Example:

In this example it will run telnet through proxy without using proxybound binary

$ export PROXYBOUND_QUIET_MODE="1"
$ export LD_PRELOAD=/usr/local/lib/libproxybound.so
$ export PROXYBOUND_CONF_FILE=/etc/proxybound.conf
$ telnet targethost.com

In this example it will run telnet through proxy(or chained proxies) specified by proxybound.conf

$ proxybound telnet targethost.com

In this example it will use different configuration file then proxybound.conf to connect to targethost2.com host.

$ proxybound -f /etc/proxybound-other.conf targethost2.com

In this example it will resolve targethost.com through proxy(or chained proxies) specified by proxybound.conf

$ proxyresolv targethost.com